/**
 * @description 插件是一个静态数据，不包含data；app中同一个插件只能有一个实例，但一个实例可以被多个控制台实例使用。不同控制台有不同data
 *  
 */
Rsd.define('Rsd.data.Plugin', {
    extend: 'Rsd.common.Object',
    requires: ['Rsd.data.Menu'],
    xtype: 'plugin', 
    name: '',  
    text: '',
    /**
     * 图标
     */
    icon: './resources/images/LOGO.png',  
    /**
     * 
     */
    isDebug: false,
    /**
     * 发布时间
     */
    pluginDate: '',
     /*
    * 菜单
    * */
    menu: null,
    /**
     * 子菜单
     */
    children: null, 
    /**
     * 控制台top区控件
     */
    top:null,
    /**
     * 控制台left区控件
     */
    left:null,
    /**
     * @description 插件首次被加载时执行
     */
    initial: null,
    /**
     * @description 控制台展示后执行
     */
    afterConsoleShown: null,
    /** 
    * @description 
    * */
    constructor: function Plugin(config) {

        config = config || {};
        var _menus = config['menus'] || config['children'];
        delete config['menus'];
        delete config['children'];
        this.apply(config);

        this.menu = new Rsd.data.Menu({ parent: this });
        this.menu.loadData(_menus);

        if (this.initial) {
            this.initial(this);
        }

    },

}, function (type) {

});